Voorbeelden van alternatieve statussen in grafiekuitdrukkingen
Deze voorbeelden bevatten praktische tips voor het gebruik van alternatieve statussen door QlikView Developers en/of extreme QlikView Power-Users. Deze voorbeelden bevinden zich in het bestand: 'Alternate States Functionality.qvw'
Selecties tussen statussen synchroniseren
De volgende uitdrukkingen kunnen in een enkele grafiek worden gebruikt:
- count({{$}} DISTINCT [Factuurnummer])
- count({{State1}} DISTINCT [Factuurnummer])
- count({{State2}} DISTINCT [Factuurnummer])
Er is een probleem met deze methode: de QlikView Developer moet de selecties dupliceren (keuzelijsten en meervoudige keuzelijsten) voor alle drie de statussen zodat de eindgebruiker de juiste selecties voor de verschillende statussen kan maken. In veel situaties zal de QlikView Developer een reeks 'gewone' selecties voor alle statussen tot zijn beschikking willen hebben. Zo kan de eindgebruiker de context instellen voor de verschillende grafieken en vervolgens kan hij gebruikmaken van specifieke selecties om zo de verschillen tussen statussen weer te geven. Set-analyse kan worden gebruikt voor statussen om bepaalde selecties tussen statussen consistent te houden.
- count({{State1<Year = $::Year, Month = $::Month>}} DISTINCT [Factuurnummer])
- count({{State2<Year = $::Year, Month = $::Month>}} DISTINCT [Factuurnummer])
De QlikView Developer houdt de selecties Year en Month in State1 en State2 synchroon aan elkaar in de status default. De QlikView Developer kan elementen toevoegen aan de ingestelde modificaties als dit nodig is om nog meer velden consistent te houden tussen statussen.
Set-operatoren
Er kunnen set-operatoren (+, *, -, /) met statussen worden gebruikt. De volgende uitdrukkingen zijn geldig en tellen de afzonderlijke factuurnummers in de status default of in State1.
Voorbeelden:
- count({{$ + State1}} DISTINCT [Factuurnummer])
telt de afzonderlijke factuurnummers in de verenigde status <default> en State1.
- count({{1 - State1}} DISTINCT [Factuurnummer])
telt de afzonderlijke factuurnummers die zich niet in State1 bevinden.
- count({{State1 * State2}} DISTINCT [Factuurnummer])
telt de afzonderlijke factuurnummers die zich in de status <default> en State1 bevinden.
Impliciete definities voor veldwaarden
Een andere manier om set-operatoren te gebruiken is met de elementfuncties P() en E() Deze functies zijn alleen beschikbaar binnen set-uitdrukkingen.
Voorbeelden:
- count({$<[Invoice Number] = p({State1} [Factuurnummer])>} DISTINCT [Factuurnummer])
Deze uitdrukking telt de afzonderlijke factuurnummers in de status <default> op basis van de mogelijke factuurnummers die beschikbaar zijn in State1.
Deze is bijna, maar niet helemaal gelijk aan de volgende uitdrukking:
- count({{$<[Invoice Number] = State1::[Invoice Number]>}} DISTINCT [Factuurnummer])
Het verschil tussen de uitdrukkingen is dat in de eerste uitdrukking de mogelijke waarden voor factuurnummers van State1 in de status default worden gezet. In de tweede uitdrukking worden de geselecteerde waarden van State1 in de status default gezet. Als de gebruiker geen factuurnummers in State1 heeft geselecteerd, worden er geen waarden van factuurnummers in de status default geplaatst.
Set-operatoren kunnen het best worden gebruikt in set-modificaties De volgende uitdrukking zoekt naar de mogelijk samenvallende factuurnummers van State1 en State2 en wijzigt deze waarden in de factuurnummers in de status default.
Voorbeelden:
- count({$<[Invoice Number] = p({State1} [Factuurnummer]) * p({State2} [Factuurnummer])>} DISTINCT [Factuurnummer])
De uitdrukking voor het zoeken naar samenvallende factuurnummers in status <default> en State1 is:
- count({$<[Invoice Number] = p({$} [Factuurnummer]) * p({State1} [Factuurnummer])>} DISTINCT [Factuurnummer])
Deze uitdrukking mag verwarrend lijken omdat deze gebruikmaakt van een status (<default> in dit geval) in zowel de elementfunctie als in de set-ID. Houd in gedachte dat de elementfunctie p($) de mogelijke waarden retourneert in de status default. De set-ID of status-ID {$} wordt gewijzigd door het resultaat van de elementfuncties. Eventuele factuurselecties die zich momenteel in de status default bevinden, worden overschreven door de waarden van de samenvallende elementfuncties.
Er dient te worden opgemerkt dat de bovenstaande uitdrukking niet volledig juist is omdat deze er niet in slaagt de gewone selecties tussen de status default en State1 te synchroniseren. Hieronder bevindt zich een uitdrukking die daar wel in slaagt:
Voorbeelden:
- count({$<[Invoice Number] = p({$} [Factuurnummer]) * p({State1<Year = $::Year, Month = $::Month>} [Factuurnummer])>} DISTINCT [Factuurnummer])
Net als eerder reeds het geval was, kan de QlikView Developer velden toevoegen aan de modificatie om selecties consistent te houden tussen verschillende statussen.